perm filename RUNT.LSP[BNF,JRA] blob
sn#024551 filedate 1973-02-13 generic text, type T, neo UTF8
(DEFPROP <EXP>
(LAMBDA NIL
(NLRR (QUOTE EXP)
(FUNCTION
(LAMBDA NIL
(COND ((AND (<ATOM>)) (STK 0))
((AND (CH /[) (<REM>) (CH /])) (CONS (QUOTE QUOTE) (CONS (STK 1) NIL)))
((AND (CH /() (<LST>) (CH /))) (STK 1))
(*NIL*))))))
EXPR)
(DEFPROP <LST>
(LAMBDA NIL
(NLRR (QUOTE LST)
(FUNCTION (LAMBDA NIL (COND ((AND (<EXP>) (<LST>)) (CONS (STK 1) (STK 0))) ((AND) NIL) (*NIL*))))))
EXPR)
(DEFPROP <REM>
(LAMBDA NIL
(NLRR (QUOTE REM)
(FUNCTION
(LAMBDA NIL
(COND ((AND (SPWD CHOICE) (<ST>)) (CONS (QUOTE *CHOICE) (STK 0)))
((AND (SPWD DECLARE) (<DECOP>) (CH :) (<OPLIST>))
(CONS (QUOTE *DECLARE) (CONS (STK 2) (CONS (STK 0) NIL))))
((AND (SPWD EDIT) (<ST>)) (CONS (QUOTE *EDIT) (STK 0)))
((AND (SPWD CLAUSES) (<CLAUSES>)) (CONS (QUOTE *CL) (STK 0)))
((AND (SPWD PATTERN) (<F1>)) (CONS (QUOTE *PATTERN) (STK 0)))
(*NIL*))))))
EXPR)
(DEFPROP >EXP<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((AND (MATCH (QUOTE (QUOTE *))) (>REM< 0)) (LIST (QUOTE (:CH /[)) (STK0) (QUOTE (:CH /]))))
((>LST< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))
((>ATOM< 1) (STK1)))))))
EXPR)
(DEFPROP >LST<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((EQ (QUOTE NIL) (STK1)) FOOBAZ)
((AND (MATCH (QUOTE (* . *))) (>EXP< 1) (>LST< 0)) (LIST (STK1) (STK0))))))))
EXPR)
(DEFPROP >REM<
(LAMBDA(%N)
(OUTRUL %N
(FUNCTION
(LAMBDA NIL
(COND ((AND (MATCH (QUOTE (*CHOICE . *))) (>ST< 0)) (LIST (QUOTE CHOICE) (STK0)))
((AND (MATCH (QUOTE (*DECLARE * *))) (>DECOP< 1) (>OPLIST< 0))
(LIST (QUOTE DECLARE) (STK1) (QUOTE (:CH :)) (STK0)))
((AND (MATCH (QUOTE (*EDIT . *))) (>ST< 0)) (LIST (QUOTE EDIT) (STK0)))
((AND (MATCH (QUOTE (*CL . *))) (>CLAUSES< 0)) (LIST (QUOTE CLAUSES) (STK0)))
((AND (MATCH (QUOTE (*PATTERN . *))) (>F1< 0)) (LIST (QUOTE PATTERN) (STK0))))))))
EXPR)